package com.jha.develop.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jha.common.annotation.Excel;
import com.jha.common.core.domain.BaseEntity;

/**
 * 学生信息对象 sys_student
 *
 * @author JHA
 * @date 2025-11-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_student")
public class SysStudent extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 学生ID */
    @TableId(value = "student_id")
    private Long studentId;

    /** 学号 */

    @Excel(name = "学号")
    private String studentNo;

    /** 学生姓名 */

    @Excel(name = "学生姓名")
    private String studentName;

    /** 性别 */

    @Excel(name = "性别")
    private String gender;

    /** 年龄 */
    @JsonSerialize(using = ToStringSerializer.class)

    @Excel(name = "年龄")
    private Long age;

    /** 身份证号 */

    @Excel(name = "身份证号")
    private String idCard;

    /** 手机号码 */

    @Excel(name = "手机号码")
    private String phone;

    /** 邮箱 */

    @Excel(name = "邮箱")
    private String email;

    /** 班级ID */
    @JsonSerialize(using = ToStringSerializer.class)

    @Excel(name = "班级ID")
    private Long classId;

    /** 专业ID */
    @JsonSerialize(using = ToStringSerializer.class)

    @Excel(name = "专业ID")
    private Long majorId;

    /** 入学日期 */

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "入学日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date enrollmentDate;

    /** 状态 */

    @Excel(name = "状态")
    private String status;

    /** 删除标志 */
    @TableLogic
    private String delFlag;

}
